package modelo;
import bean.Conexion;

import java.awt.Image;
import java.io.File;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


public class ArticuloDAO  extends ConexionDao{
	
	public ArticuloDAO() {
		super();	
	
	}	
	
	

	public void registrarArticulo(Articulo articulo) {
		String tiraSQL = "INSERT INTO articulo "+
		 				 "(codigo, nombre, categoria, costo, precio,existencia, imagen) "+
		 				 "VALUES ('"+articulo.getCodigo()+"', '"+articulo.getNombre()+
		 				 "','"+articulo.getCategoria()+"',"+articulo.getCosto()+
		 				 ","+ articulo.getPrecio()+","+ articulo.getExistencia()+
		 				 ",'"+ articulo.getImagen() + "')";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Articulo> consultarArticulos() {
		List<Articulo> articulos = new ArrayList<Articulo>();
		String tiraSQL = "SELECT * FROM articulo";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				int id = resultSet.getInt("id");
				String codigo = resultSet.getString("codigo");
				String nombre = resultSet.getString("nombre");
				String categoria = resultSet.getString("categoria");
				Double costo = resultSet.getDouble("costo");
				Double precio = resultSet.getDouble("precio");
				Double existencia = resultSet.getDouble("existencia");
				String imagen = resultSet.getString("imagen");
				Articulo articulo = new Articulo(id,codigo, nombre, categoria,costo,precio,existencia, imagen);
				articulos.add(articulo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return articulos;
	}
	
	//Articulos Disponibles
	public List<Articulo> consultarArticulosDisponibles() {
		List<Articulo> articulos = new ArrayList<Articulo>();
		String tiraSQL = "SELECT * FROM articulo WHERE existencia > 0";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				
				int id = resultSet.getInt("id");
				String codigo = resultSet.getString("codigo");
				String nombre = resultSet.getString("nombre");
				String categoria = resultSet.getString("categoria");
				Double costo = resultSet.getDouble("costo");
				Double precio = resultSet.getDouble("precio");
				Double existencia = resultSet.getDouble("existencia");
				String imagen = resultSet.getString("imagen");
				Articulo articulo = new Articulo(id,codigo, nombre, categoria,costo,precio,existencia, imagen);
				articulos.add(articulo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return articulos;
	}
	
	// Modificar
	public void modificarArticulo(Articulo articulo) {
		
				
		String tiraSQL = "UPDATE articulo SET codigo = '" + articulo.getCodigo() + "', nombre = '"+ articulo.getNombre() +		 
				"', categoria = '" + articulo.getCategoria() + "', costo = " + articulo.getCosto() +
				", precio = " + articulo.getPrecio() + ", existencia = "+ articulo.getExistencia() +
				", imagen = '" + articulo.getImagen() + "' WHERE id =" + articulo.getId();
				
		Conexion.ejecutar(tiraSQL);
	}
	
	
	// Eliminar
		public void eliminarArticulo(Integer id) {
			String tiraSQL =  "DELETE FROM articulo WHERE id = "+ id;
									
			Conexion.ejecutar(tiraSQL);
		}



		public Double buscarPrecio(String cod) {
			Double precio=0.0;
			String tiraSQL = "SELECT precio FROM articulo WHERE codigo = '"+ cod + "'";
			ResultSet resultSet = Conexion.consultar(tiraSQL);	
			try {
				resultSet.next();
				precio = resultSet.getDouble("precio");
				
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return precio;
		}



		public Articulo consultarArticulos(int idRegistro) {
			
			Articulo articulo = null;
			
			String tiraSQL = "SELECT * FROM articulo where id="+idRegistro;
			System.out.println(tiraSQL);
			ResultSet resultSet = Conexion.consultar(tiraSQL);	
			
			try {
				while (resultSet.next()) {
					int id = resultSet.getInt("id");
					String codigo = resultSet.getString("codigo");
					String nombre = resultSet.getString("nombre");
					String categoria = resultSet.getString("categoria");
					Double costo = resultSet.getDouble("costo");
					Double precio = resultSet.getDouble("precio");
					Double existencia = resultSet.getDouble("existencia");
					String imagen = resultSet.getString("imagen");
					 articulo = new Articulo(id,codigo, nombre, categoria,costo,precio,existencia, imagen);
								}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return articulo;
			
			
			
		}
	
public Articulo consultarArticulos(String cod) {
			
			Articulo articulo = null;
			
			String tiraSQL = "SELECT * FROM articulo where codigo='"+cod + "'";
			ResultSet resultSet = Conexion.consultar(tiraSQL);	
			
			try {
				while (resultSet.next()) {
					int id = resultSet.getInt("id");
					String codigo = resultSet.getString("codigo");
					String nombre = resultSet.getString("nombre");
					String categoria = resultSet.getString("categoria");
					Double costo = resultSet.getDouble("costo");
					Double precio = resultSet.getDouble("precio");
					Double existencia = resultSet.getDouble("existencia");
					String imagen = resultSet.getString("imagen");
					 articulo = new Articulo(id,codigo, nombre, categoria,costo,precio,existencia, imagen);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return articulo;			
		}
	
}
